package com.itheima.health.dao;

import com.github.pagehelper.Page;
import com.itheima.health.pojo.Role;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository // 加和不加没有影响
public interface RoleDao {

    List<Role> findRolesByUserId(Integer userId);

    List<Role> findAll();

    Page<Role> findPage(String queryString);

    void add(Role role);

    void setMenuAndRole(@Param("roleId") Integer roleId, @Param("menuId")Integer menuId);

    void setPermissionAndRole(@Param("roleId")Integer roleId, @Param("permissionId")Integer permissionId);

    Role findByRoleId(Integer id);

    List<Integer> findPermissionIdsByRoleId(Integer roleId);

    List<Integer> findMenuIdsByRoleId(Integer roleId);

    void editRole(Role role);

    void deleteAssociationPermissionAndRole(Integer id);

    void deleteAssociationMenuAndRole(Integer id);

    void deleteRole(Integer id);

    @Select("SELECT COUNT(*) FROM t_user_role WHERE role_id = #{roleId}")
    long findCountByRoleId(Integer roleId);
}
